import { wxLoginByMini,wxSceneExchange } from '@/api/small/login'
import { bindSuperior } from '@/api/login'
import { handleLogPost} from './logSdk' // permission control
import small from '@/smallapp/small'
import StoreSave from '@/utils/store'
// TODO 暂时不用 要用的时候再打开
// const mtjwxsdk = require("./mtj-wx-sdk.js");

// 日常开发打开当前
const livePlayer = 'ZB_PLUGIN'
// 打小程序包的时候打开此注释
// const livePlayer = requirePlugin("live-player-plugin");

App({
  onLaunch(options) {
    // 储存起来小程序版本以及店铺ID
    wx.setStorageSync('appVersion', small.globalData.appVersion)
    wx.setStorageSync('shopId', small.globalData.shopId)
  },
  onShow(options) {
    // console.log(options, 'smallApp Option')
    small.wxCache('scene', options.scene)
    small.wxCache('dptrace', options.query.dptrace)  //微视商品跳转链接中，绑定上下级
    // 处理 已经登录过 没有绑定上下级的问题
    // console.log(options.query.pid, small.wxCache('pid'), small.wxCache('global_login_info').uid, small.checkLogin(),'上下级')
    if (small.checkLogin() &&
        options &&
        options.query &&
        options.query.pid &&
        small.wxCache('global_login_info').uid != options.query.pid
    ) {
      // console.log('开始绑定')
      // 绑定上下级方法
      bindSuperior({bpid: options.query.pid, origin: small.wxCache('pathUrl')}).then(res => { 
        // console.log(res) 
      })
    }
    // 处理 结束
    if(options && options.query && options.query.pid){
      small.wxCache('pid', options.query.pid) // 存储得到的pid
    }
    // 小程序打开小程序
    if (options.scene == 1037) {
      small.wxCache('dzUser', {})
      if(options.referrerInfo && options.referrerInfo.extraData && options.referrerInfo.extraData.pid){
        small.wxCache('pid', options.referrerInfo.extraData.pid) // 存储得到的pid
      }else if(options.query.pid){
        small.wxCache('pid', options.query.pid) // 存储得到的pid
      }
      // 定制软通优惠券 存储跳转过来携带
      if (options.referrerInfo && options.referrerInfo.extraData && options.referrerInfo.extraData.userPhoneNo) {
        small.wxCache('dzUser', options.referrerInfo.extraData)
      }
      // console.log('小程序跳转小程序',small.wxCache('pid'))
    }
    
    if (options.scene == 1154) {
      small.wxCache('isTimelineOut', 1)
    } else {
      small.wxCache('isTimelineOut', null)
    }
    // 静默授权登录移至layout中
    /* // 处理静默授权，当有登录过的时候无需弹出授权框
    wx.login({
      success: (resp) => {
        if(!resp.code){
          return false
        }
        wxLoginByMini({code:resp.code}).then((res) => {
          const setCookie = res.headers['Set-Cookie']
          
          small.wxCache('user_auth_cookie', setCookie)
          if (res.data.status == 1) {
            let globalLoginInfo = res.data.data
            // console.log(globalLoginInfo, '静默授权')
            small.wxCache('global_login_info', globalLoginInfo, 2592000);

            if (small.wxCache('pid') && small.wxCache('pid')!=globalLoginInfo.uid) { // 如果可以取到上级pid进行绑定上下级操作
              // 绑定上下级方法
              bindSuperior({bpid: small.wxCache('pid'), origin: small.wxCache('pathUrl')}).then(res => { 
                // console.log('bindSuperior',res) 
              })
            }
            // small.wxCache('global_login_info', null);
          } else {
            small.wxCache('global_login_info', null);
          }
        })
      }
    }) */

    // 小程序扫描二维码  长按图片识别二维码  扫描手机相册中选取的二维码	万能链接scheme
    if (options.scene == 1011 || options.scene == 1012 || options.scene == 1013 || options.scene == 1047 || options.scene == 1048 || options.scene == 1049) { 
      if (options.query.scene) { // 小程序码里面有scene
        wxSceneExchange({scene: options.query.scene}).then(res => {
          if (res.status == 1) { // 当换取成功的时候,直接拿到当前path进行跳转要进行参数合并处理
            // 处理 已经登录过 没有绑定上下级的问题
            // console.log('扫码上下级', res.data.options.pid)
            // console.log('扫码上下级1', small.wxCache('global_login_info').uid)
            // console.log('扫码上下级2', small.wxCache('pid'))
            if (small.checkLogin() &&
                res.data.options.pid &&
                small.wxCache('global_login_info').uid &&
                small.wxCache('global_login_info').uid != res.data.options.pid
            ) {
              // console.log('开始绑定扫码')
              // 绑定上下级方法
              bindSuperior({bpid: res.data.options.pid, origin: small.wxCache('pathUrl')}).then(res => { 
                // console.log(res) 
              })
            }
            // 处理完毕
            small.wxCache('pid', res.data.options.pid) // 存储得到的pid
            const query = res.data.options
            // 进行参数合并处理
            const queryArr = []
            for (const item in query) {
              const str = `${item}=${query[item]}`
              queryArr.push(str)
            }
            const queryStr = queryArr.join('&')
            // console.log('******redirectTobefore', `/${options.path}?type=jump&targeturl=${encodeURIComponent(res.data.router)}&${queryStr}`)
            wx.redirectTo({
              url: `/${options.path}?type=jump&targeturl=${encodeURIComponent(res.data.router)}&${queryStr}`
            })
            // console.log('******redirectToafter', `/${options.path}?type=jump&targeturl=${encodeURIComponent(res.data.router)}&${queryStr}`)
          } else {
            wx.showModal({
              title: '温馨提示',
              content: `小程序码scene换取失败${res.msg}`,
              showCancel: false,
              success (res) {
                if (res.confirm) { // 当用户点击确定的时候，强制跳转到首页
                  wx.redirectTo({
                    url: `/pages/shopIndex/index?type=jump&targeturl=${encodeURIComponent('/index')}`
                  })
                }
              }
            })
            
          }
        })
        // if (options.path == "goods/pages/itemDetail/index"){
        //   // console.log(11232)
        //   wx.redirectTo({
        //     url: `/goods/pages/itemDetail/index?type=jump&targeturl=${encodeURIComponent('/item-detail')}&scene=${options.query.scene}`
        //   })
        // } else if (options.path == "goods/pages/supplier/index"){
        //   wx.redirectTo({
        //     url: `/goods/pages/supplier/index?type=jump&targeturl=${encodeURIComponent('/supplier')}&scene=${options.query.scene}`
        //   })
        // }
      }
    }
    
    // 分享卡片入口场景才调用getShareParams接口获取以下参数，仅微信小程序有直播，修改时请注意
    if (options.scene == 1007 || options.scene == 1008 || options.scene == 1044 || options.scene == 1155) {
      // console.log(livePlayer, '直播插件')
      if (typeof livePlayer.getShareParams === 'function') {
        livePlayer.getShareParams()
          .then((res) => {
            // console.log(res, '直播进入')
            small.wxCache('ZB_PARAMS', res)
          }).catch((err) => {
            // console.log('get share params', err)
          })
      } else {
        // console.log('不支持直播组件')
      }
    }
  },
  onHide() {
    small.wxCache('showSideWidget',null)
    small.wxCache('rurl',null)
  },
  onError(err) {},
  onPageNotFound(options) {},
})

const originPage = Page;
Page = (page) => {
  let originOnShowMethod = page["onShow"] || function () {};
  page["onShow"] = function (params) {
    if (this.route != 'activity/pages/errorPage/index') {
      handleLogPost('enterpage')
    }
    originOnShowMethod.call(this, params);
  };

  let originOnUnloadMethod = page["onUnload"] || function () {};
  page["onUnload"] = function (params) {
    handleLogPost('leavepage')
    // let pageObj = getCurrentPages();
    // const { route } = pageObj[pageObj.length - 1];
    // // console.log('onUnload')
    // // console.log(route)
    // //停止计时
    // if (tracksPages.indexOf(route) >= 0 && page.can_track) {
    //   page.can_track = false;
    //   const page_stay_time = (new Date() - page.start_time) / 1000;
    //   // console.log(page_stay_time)
    // }
    originOnUnloadMethod.call(this, params);
  };

  let originOnHideMethod = page["onHide"] || function () {};
  page["onHide"] = function (params) {
    handleLogPost('leavepage')
    originOnHideMethod.call(this, params);
  };

  return originPage(page);
};
